package com.dragon.modules.yuegou.entity.merchant;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.merchant.MerchantLevelOrderType;
import com.dragon.modules.yuegou.enums.merchant.MerchantLevelStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户等级实体类<br>
 * 对应的表为：mer_merchant_level<br>
 * 
 * @author pbuilder generated
 * @date 2019-09-23 15:27:57
 * @company sgy
 * @version 2.0
 */
@TableName("mer_merchant_level")
@ApiModel(description = "商户等级")
public class MerchantLevelEntity {

	@ApiModelProperty("主键")
	protected String id;

    /** 商户ID */
	@ApiModelProperty("商户ID")
	protected String merchantId;

    /** 商户名称 */
	@ApiModelProperty("商户名称")
	protected String merchantName;

    /** 等级ID */
	@ApiModelProperty("等级ID")
	protected String levelId;

    /** 购买时间 */
	@ApiModelProperty("购买时间")
	protected LocalDateTime buyTime;

    /** 有效期限，单位：月 */
	@ApiModelProperty("有效期限，单位：月")
	protected Integer periodValidity;

    /** 有效期开始时间 */
	@ApiModelProperty("有效期开始时间")
	protected LocalDateTime startTime;

    /** 有效期结束时间 */
	@ApiModelProperty("有效期结束时间")
	protected LocalDateTime endTime;

    /** 支付金额 */
	@ApiModelProperty("支付金额")
	protected BigDecimal payAmount;

    /** 退还金额 */
	@ApiModelProperty("退还金额")
	protected BigDecimal backAmount;

    /** 服务费折扣 */
	@ApiModelProperty("服务费折扣")
	protected BigDecimal serviceDiscount;

    /** 退还时间 */
	@ApiModelProperty("退还时间")
	protected LocalDateTime backTime;

    /** 退还信息 */
	@ApiModelProperty("退还信息")
	protected String backInfo;

    /** 订单号 */
	@ApiModelProperty("订单号")
	protected String orderNo;

    /** [枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL */
	@ApiModelProperty("[枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL")
	protected MerchantLevelOrderType orderType;

    /** 升级抵消金额 */
	@ApiModelProperty("升级抵消金额")
	protected BigDecimal upgradeAmount;

    /** [枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID */
	@ApiModelProperty("[枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID")
	protected MerchantLevelStatus status;

    /** 0 第三方支付 1钱包支付 */
	@ApiModelProperty("0 第三方支付 1钱包支付")
	protected String payType;

    /** 等级细项ID */
	@ApiModelProperty("等级细项ID")
	protected String levelDetailId;

    /** 下单时间 */
	@ApiModelProperty("下单时间")
	protected LocalDateTime orderTime;

    /**  */
	protected LocalDateTime createdTime;

    /**  */
	protected String createdBy;

    /**  */
	protected LocalDateTime modifiedTime;

    /**  */
	protected String modifiedBy;

	/**
	 * 构造一个空商户等级实体对象
	 */
	public MerchantLevelEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个商户等级实体对象
	 * 
	 * @param other 其它对象
	 */
	public MerchantLevelEntity(MerchantLevelEntity other){
		super();
     	this.id = other.id;
     	this.merchantId = other.merchantId;
     	this.merchantName = other.merchantName;
     	this.levelId = other.levelId;
     	this.buyTime = other.buyTime;
     	this.periodValidity = other.periodValidity;
     	this.startTime = other.startTime;
     	this.endTime = other.endTime;
     	this.payAmount = other.payAmount;
     	this.backAmount = other.backAmount;
     	this.serviceDiscount = other.serviceDiscount;
     	this.backTime = other.backTime;
     	this.backInfo = other.backInfo;
     	this.orderNo = other.orderNo;
     	this.orderType = other.orderType;
     	this.upgradeAmount = other.upgradeAmount;
     	this.status = other.status;
     	this.payType = other.payType;
     	this.levelDetailId = other.levelDetailId;
     	this.orderTime = other.orderTime;
     	this.createdTime = other.createdTime;
     	this.createdBy = other.createdBy;
     	this.modifiedTime = other.modifiedTime;
     	this.modifiedBy = other.modifiedBy;
	}


	/**
	 * 获取主键
	 * 
	 * @return id 主键
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置主键
	 * 
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取商户ID
	 * 
	 * @return merchantId 商户ID
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商户ID
	 * 
	 * @param merchantId 商户ID
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取商户名称
	 * 
	 * @return merchantName 商户名称
	 */
	public String getMerchantName() {
		return merchantName;
	}
  	
	/**
	 * 设置商户名称
	 * 
	 * @param merchantName 商户名称
	 */
	public void setMerchantName(String merchantName) {
		this.merchantName = merchantName;
	}

	/**
	 * 获取等级ID
	 * 
	 * @return levelId 等级ID
	 */
	public String getLevelId() {
		return levelId;
	}
  	
	/**
	 * 设置等级ID
	 * 
	 * @param levelId 等级ID
	 */
	public void setLevelId(String levelId) {
		this.levelId = levelId;
	}

	/**
	 * 获取购买时间
	 * 
	 * @return buyTime 购买时间
	 */
	public LocalDateTime getBuyTime() {
		return buyTime;
	}
  	
	/**
	 * 设置购买时间
	 * 
	 * @param buyTime 购买时间
	 */
	public void setBuyTime(LocalDateTime buyTime) {
		this.buyTime = buyTime;
	}

	/**
	 * 获取有效期限，单位：月
	 * 
	 * @return periodValidity 有效期限，单位：月
	 */
	public Integer getPeriodValidity() {
		return periodValidity;
	}
  	
	/**
	 * 设置有效期限，单位：月
	 * 
	 * @param periodValidity 有效期限，单位：月
	 */
	public void setPeriodValidity(Integer periodValidity) {
		this.periodValidity = periodValidity;
	}

	/**
	 * 获取有效期开始时间
	 * 
	 * @return startTime 有效期开始时间
	 */
	public LocalDateTime getStartTime() {
		return startTime;
	}
  	
	/**
	 * 设置有效期开始时间
	 * 
	 * @param startTime 有效期开始时间
	 */
	public void setStartTime(LocalDateTime startTime) {
		this.startTime = startTime;
	}

	/**
	 * 获取有效期结束时间
	 * 
	 * @return endTime 有效期结束时间
	 */
	public LocalDateTime getEndTime() {
		return endTime;
	}
  	
	/**
	 * 设置有效期结束时间
	 * 
	 * @param endTime 有效期结束时间
	 */
	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	/**
	 * 获取支付金额
	 * 
	 * @return payAmount 支付金额
	 */
	public BigDecimal getPayAmount() {
		return payAmount;
	}
  	
	/**
	 * 设置支付金额
	 * 
	 * @param payAmount 支付金额
	 */
	public void setPayAmount(BigDecimal payAmount) {
		this.payAmount = payAmount;
	}

	/**
	 * 获取退还金额
	 * 
	 * @return backAmount 退还金额
	 */
	public BigDecimal getBackAmount() {
		return backAmount;
	}
  	
	/**
	 * 设置退还金额
	 * 
	 * @param backAmount 退还金额
	 */
	public void setBackAmount(BigDecimal backAmount) {
		this.backAmount = backAmount;
	}

	/**
	 * 获取服务费折扣
	 * 
	 * @return serviceDiscount 服务费折扣
	 */
	public BigDecimal getServiceDiscount() {
		return serviceDiscount;
	}
  	
	/**
	 * 设置服务费折扣
	 * 
	 * @param serviceDiscount 服务费折扣
	 */
	public void setServiceDiscount(BigDecimal serviceDiscount) {
		this.serviceDiscount = serviceDiscount;
	}

	/**
	 * 获取退还时间
	 * 
	 * @return backTime 退还时间
	 */
	public LocalDateTime getBackTime() {
		return backTime;
	}
  	
	/**
	 * 设置退还时间
	 * 
	 * @param backTime 退还时间
	 */
	public void setBackTime(LocalDateTime backTime) {
		this.backTime = backTime;
	}

	/**
	 * 获取退还信息
	 * 
	 * @return backInfo 退还信息
	 */
	public String getBackInfo() {
		return backInfo;
	}
  	
	/**
	 * 设置退还信息
	 * 
	 * @param backInfo 退还信息
	 */
	public void setBackInfo(String backInfo) {
		this.backInfo = backInfo;
	}

	/**
	 * 获取订单号
	 * 
	 * @return orderNo 订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
  	
	/**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 获取[枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL
	 * 
	 * @return orderType [枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL
	 */
	public MerchantLevelOrderType getOrderType() {
		return orderType;
	}
  	
	/**
	 * 设置[枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL
	 * 
	 * @param orderType [枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL
	 */
	public void setOrderType(MerchantLevelOrderType orderType) {
		this.orderType = orderType;
	}

	/**
	 * 获取升级抵消金额
	 * 
	 * @return upgradeAmount 升级抵消金额
	 */
	public BigDecimal getUpgradeAmount() {
		return upgradeAmount;
	}
  	
	/**
	 * 设置升级抵消金额
	 * 
	 * @param upgradeAmount 升级抵消金额
	 */
	public void setUpgradeAmount(BigDecimal upgradeAmount) {
		this.upgradeAmount = upgradeAmount;
	}

	/**
	 * 获取[枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID
	 * 
	 * @return status [枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID
	 */
	public MerchantLevelStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID
	 * 
	 * @param status [枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID
	 */
	public void setStatus(MerchantLevelStatus status) {
		this.status = status;
	}

	/**
	 * 获取0 第三方支付 1钱包支付
	 * 
	 * @return payType 0 第三方支付 1钱包支付
	 */
	public String getPayType() {
		return payType;
	}
  	
	/**
	 * 设置0 第三方支付 1钱包支付
	 * 
	 * @param payType 0 第三方支付 1钱包支付
	 */
	public void setPayType(String payType) {
		this.payType = payType;
	}

	/**
	 * 获取等级细项ID
	 * 
	 * @return levelDetailId 等级细项ID
	 */
	public String getLevelDetailId() {
		return levelDetailId;
	}
  	
	/**
	 * 设置等级细项ID
	 * 
	 * @param levelDetailId 等级细项ID
	 */
	public void setLevelDetailId(String levelDetailId) {
		this.levelDetailId = levelDetailId;
	}

	/**
	 * 获取下单时间
	 * 
	 * @return orderTime 下单时间
	 */
	public LocalDateTime getOrderTime() {
		return orderTime;
	}
  	
	/**
	 * 设置下单时间
	 * 
	 * @param orderTime 下单时间
	 */
	public void setOrderTime(LocalDateTime orderTime) {
		this.orderTime = orderTime;
	}

	/**
	 * 获取
	 * 
	 * @return createdTime 
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdTime 
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取
	 * 
	 * @return createdBy 
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdBy 
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedTime 
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedTime 
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedBy 
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedBy 
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

    public String toString() {
		return new StringBuilder().append("MerchantLevelEntity{").
			append("id=").append(id).
			append(",merchantId=").append(merchantId).
			append(",merchantName=").append(merchantName).
			append(",levelId=").append(levelId).
			append(",buyTime=").append(buyTime).
			append(",periodValidity=").append(periodValidity).
			append(",startTime=").append(startTime).
			append(",endTime=").append(endTime).
			append(",payAmount=").append(payAmount).
			append(",backAmount=").append(backAmount).
			append(",serviceDiscount=").append(serviceDiscount).
			append(",backTime=").append(backTime).
			append(",backInfo=").append(backInfo).
			append(",orderNo=").append(orderNo).
			append(",orderType=").append(orderType).
			append(",upgradeAmount=").append(upgradeAmount).
			append(",status=").append(status).
			append(",payType=").append(payType).
			append(",levelDetailId=").append(levelDetailId).
			append(",orderTime=").append(orderTime).
			append(",createdTime=").append(createdTime).
			append(",createdBy=").append(createdBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",modifiedBy=").append(modifiedBy).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public MerchantLevelEntity copy() {
		return new MerchantLevelEntity(this);
	}

    /** 主键 */
	public static final String COL_ID = "id";

    /** 商户ID */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 商户名称 */
	public static final String COL_MERCHANT_NAME = "merchant_name";

    /** 等级ID */
	public static final String COL_LEVEL_ID = "level_id";

    /** 购买时间 */
	public static final String COL_BUY_TIME = "buy_time";

    /** 有效期限，单位：月 */
	public static final String COL_PERIOD_VALIDITY = "period_validity";

    /** 有效期开始时间 */
	public static final String COL_START_TIME = "start_time";

    /** 有效期结束时间 */
	public static final String COL_END_TIME = "end_time";

    /** 支付金额 */
	public static final String COL_PAY_AMOUNT = "pay_amount";

    /** 退还金额 */
	public static final String COL_BACK_AMOUNT = "back_amount";

    /** 服务费折扣 */
	public static final String COL_SERVICE_DISCOUNT = "service_discount";

    /** 退还时间 */
	public static final String COL_BACK_TIME = "back_time";

    /** 退还信息 */
	public static final String COL_BACK_INFO = "back_info";

    /** 订单号 */
	public static final String COL_ORDER_NO = "order_no";

    /** [枚举]订单类型：0-续费-RENEWAL、1-直接购买-BUY、2-升级-UPLEVEL */
	public static final String COL_ORDER_TYPE = "order_type";

    /** 升级抵消金额 */
	public static final String COL_UPGRADE_AMOUNT = "upgrade_amount";

    /** [枚举]支付状态：0-未支付-NOPAY、1-已支付-PAID、2-失效-INVALID */
	public static final String COL_STATUS = "status";

    /** 0 第三方支付 1钱包支付 */
	public static final String COL_PAY_TYPE = "pay_type";

    /** 等级细项ID */
	public static final String COL_LEVEL_DETAIL_ID = "level_detail_id";

    /** 下单时间 */
	public static final String COL_ORDER_TIME = "order_time";

    /**  */
	public static final String COL_CREATED_TIME = "created_time";

    /**  */
	public static final String COL_CREATED_BY = "created_by";

    /**  */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /**  */
	public static final String COL_MODIFIED_BY = "modified_by";
}
